home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / TUTORIAL.BIN / RadioButton.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-01-30  |  4.9 KB  |  138 lines

  1. package symantec.itools.db.awt;
  2.  
  3. import java.awt.Checkbox;
  4. import java.awt.CheckboxGroup;
  5. import java.awt.Component;
  6. import java.awt.Event;
  7. import java.io.IOException;
  8. import symantec.itools.db.pro.ProjBinder;
  9. import symantec.itools.db.pro.ProjLink;
  10. import symantec.itools.db.pro.RelationView;
  11. import symjava.sql.SQLException;
  12.  
  13. public class RadioButton extends Checkbox implements ProjLink {
  14.    private ProjBinder m_ProjBinder;
  15.    private String m_Data;
  16.    private String m_Input;
  17.    private int m_treatBlankAs;
  18.    private boolean m_DynamicUpdate = false;
  19.  
  20.    public RadioButton() {
  21.       super.setLabel("<dbAWARE RadioButton>");
  22.    }
  23.  
  24.    public RadioButton(String label, RadioBox rb, boolean state) {
  25.       super(label, rb, state);
  26.       this.setBinding(rb.getRelView(), rb.getProjection());
  27.    }
  28.  
  29.    public void setTreatBlankAs(String blank) {
  30.       if ((new String(blank)).toUpperCase().equals("DEFAULT")) {
  31.          this.m_treatBlankAs = 0;
  32.       } else if ((new String(blank)).toUpperCase().equals("NULL")) {
  33.          this.m_treatBlankAs = 1;
  34.       } else {
  35.          if ((new String(blank)).toUpperCase().equals("EMPTY")) {
  36.             this.m_treatBlankAs = 2;
  37.          }
  38.  
  39.       }
  40.    }
  41.  
  42.    public void setBinding(RelationView relView, String projection) {
  43.       try {
  44.          int projectionNumber = relView.findProjByName(projection);
  45.          relView.bindProj(projectionNumber, this);
  46.       } catch (SQLException Ex) {
  47.          this.raiseException("SQLException from RadioButton.setBinding: " + ((Throwable)Ex).getMessage());
  48.       }
  49.    }
  50.  
  51.    public void init(ProjBinder binder) {
  52.       this.m_ProjBinder = binder;
  53.       this.setEditable(this.m_ProjBinder);
  54.    }
  55.  
  56.    public void notifyDataChange(ProjBinder binder) {
  57.       if (binder != null) {
  58.          this.m_ProjBinder = binder;
  59.       }
  60.  
  61.       String sLabel = new String(((Checkbox)this).getLabel());
  62.       new String();
  63.  
  64.       try {
  65.          if (binder.isReadable() && !binder.isNull()) {
  66.             String data = binder.getStringValue();
  67.             if (sLabel.compareTo(data) == 0) {
  68.                ((Checkbox)this).setState(true);
  69.             }
  70.          }
  71.       } catch (SQLException Ex) {
  72.          this.raiseException("SQLException from RadioButton.notifyDataChange: " + ((Throwable)Ex).getMessage());
  73.       } catch (IOException Ex) {
  74.          this.raiseException("IOException from RadioButton.notifyDataChange: " + ((Throwable)Ex).getMessage());
  75.       }
  76.  
  77.       this.setEditable(this.m_ProjBinder);
  78.    }
  79.  
  80.    public boolean lostFocus(Event evt, Object what) {
  81.       this.notifyStateChange();
  82.       return super.lostFocus(evt, what);
  83.    }
  84.  
  85.    public boolean notifySetData(ProjBinder binder) {
  86.       return this.notifyStateChange();
  87.    }
  88.  
  89.    boolean notifyStateChange() {
  90.       CheckboxGroup rbg = ((Checkbox)this).getCheckboxGroup();
  91.       if (rbg.getCurrent() == this) {
  92.          try {
  93.             if (this.m_ProjBinder != null && this.m_ProjBinder.isWritable()) {
  94.                this.m_ProjBinder.setValueFromString(((Checkbox)this).getLabel(), 0, this.m_treatBlankAs);
  95.             }
  96.          } catch (SQLException Ex) {
  97.             System.out.println("SQLException from TextField.notifyInputChange.setString: " + ((Throwable)Ex).getMessage());
  98.             return false;
  99.          } catch (IOException Ex) {
  100.             System.out.println("IOException from TextField.notifyInputChange.setString: " + ((Throwable)Ex).getMessage());
  101.             return false;
  102.          }
  103.       }
  104.  
  105.       return true;
  106.    }
  107.  
  108.    public boolean handleEvent(Event evt) {
  109.       this.notifyStateChange();
  110.       return super.handleEvent(evt);
  111.    }
  112.  
  113.    void setEditable(ProjBinder binder) {
  114.       ((Component)this).disable();
  115.  
  116.       try {
  117.          if (binder != null) {
  118.             RelationView rv = binder.getRelationView();
  119.             if (rv != null && rv.getCurrentRecordState() != 105) {
  120.                ((Component)this).enable();
  121.                return;
  122.             }
  123.          }
  124.       } catch (SQLException Ex) {
  125.          System.out.println(((Throwable)Ex).getMessage());
  126.       }
  127.  
  128.    }
  129.  
  130.    void raiseException(String text) {
  131.       System.out.println(text);
  132.    }
  133.  
  134.    public void setDynamicUpdate(boolean update) {
  135.       this.m_DynamicUpdate = update;
  136.    }
  137. }
  138.